package config

import (
    "github.com/spf13/viper"
    "log"
)

type Config struct {
    App struct {
        Name string
        Port string
    }
    Database struct {
        Mysql struct {
            Host      string
            Port      string
            User      string
            Password  string
            Name      string
            MaxIdle   int
            MaxActive int
        }
        Redis struct {
            Host     string
            Port     string
            Password string
            Db       int
        }
    }
}

var Appconfig *Config

// InitConfig 读取配置文件
func InitConfig() {
    viper.SetConfigName("config")
    viper.SetConfigType("yaml")
    viper.AddConfigPath("./config")

    if err := viper.ReadInConfig(); err != nil {
        log.Fatalf("读取配置文件错误：%v", err)
    }

    Appconfig = &Config{}

    if err := viper.Unmarshal(Appconfig); err != nil {
        log.Fatalf("将配置文件载入程序错误：%v", err)
    }

    InitMysql()

    InitRedis()
}
